<!DOCTYPE html>
<html lang="zh-cn" itemscope itemtype="http://schema.org/WebPage">
  <head>
    

  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">

  <title>Kubernetes Redis Cluster - panda power!</title>
  <meta name="description" content="kubernetes部署redis集群 [TOC]
   镜像 版本 备注     redis.tar alpine    redis-trib.tar dockerfile构建 初始化redis集群    1、创建NFS存储 说明：创建NFS存储主要是为了给Redis提供稳定的后端存储，当Redis的Pod重启或迁移后，依然能获得原先的数据。这里，我们先要创建NFS，然后通过使用PV为Redis挂载一个远程的NFS路径
/pv 192.168.10.0/24(rw,sync,all_squash) rw表示读写权限；all_squash 表示客户机上的任何用户访问该共享目录时都映射成服务器上的匿名用户（默认为nfsnobody）
赋予权限:
chmod -R 777 /pv 挂载到本地测试
mount.nfs 192.168.10.200:/pv /pv  2、创建pv [root@node01 yml]# cat pv.yml apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv1 spec: capacity: storage: 200M accessModes: - ReadWriteMany nfs: server: 192.168.10.21 path: &#34;/pv/pv1&#34; --- apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv2 spec: capacity: storage: 200M accessModes: - ReadWriteMany nfs: server: 192.">
  <meta name="author" content="casper chen"/><script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "WebSite",
    "name": "panda power!",
    
    "url": "https:\/\/cyboca.ga"
}
</script><script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "name": "",
  "url": "https:\/\/cyboca.ga"
  
  
  
  
}
</script>
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
        "@type": "ListItem",
        "position": 1,
        "item": {
          "@id": "https:\/\/cyboca.ga",
          "name": "home"
        }
    },{
        "@type": "ListItem",
        "position": 3,
        "item": {
          "@id": "https:\/\/cyboca.ga\/post\/emiya\/kubernetes-redis-cluster\/",
          "name": "Kubernetes redis cluster"
        }
    }]
}
</script><script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Article",
  "author": {
    "name" : "emiya"
  },
  "headline": "Kubernetes Redis Cluster",
  "description" : "kubernetes部署redis集群 [TOC]\n   镜像 版本 备注     redis.tar alpine    redis-trib.tar dockerfile构建 初始化redis集群    1、创建NFS存储 说明：创建NFS存储主要是为了给Redis提供稳定的后端存储，当Redis的Pod重启或迁移后，依然能获得原先的数据。这里，我们先要创建NFS，然后通过使用PV为Redis挂载一个远程的NFS路径\n\/pv 192.168.10.0\/24(rw,sync,all_squash) rw表示读写权限；all_squash 表示客户机上的任何用户访问该共享目录时都映射成服务器上的匿名用户（默认为nfsnobody）\n赋予权限:\nchmod -R 777 \/pv 挂载到本地测试\nmount.nfs 192.168.10.200:\/pv \/pv  2、创建pv [root@node01 yml]# cat pv.yml apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv1 spec: capacity: storage: 200M accessModes: - ReadWriteMany nfs: server: 192.168.10.21 path: \x26#34;\/pv\/pv1\x26#34; --- apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv2 spec: capacity: storage: 200M accessModes: - ReadWriteMany nfs: server: 192.",
  "inLanguage" : "zh-cn",
  "wordCount":  525 ,
  "datePublished" : "2019-11-11T00:00:56",
  "dateModified" : "2019-11-11T00:00:56",
  "image" : "https:\/\/cyboca.ga\/img\/avatar-icon.png",
  "keywords" : [ "Kubernetes, Redis, StatefulSet, Headless Service" ],
  "mainEntityOfPage" : "https:\/\/cyboca.ga\/post\/emiya\/kubernetes-redis-cluster\/",
  "publisher" : {
    "@type": "Organization",
    "name" : "https:\/\/cyboca.ga",
    "logo" : {
        "@type" : "ImageObject",
        "url" : "https:\/\/cyboca.ga\/img\/avatar-icon.png",
        "height" :  60 ,
        "width" :  60
    }
  }
}
</script>

<meta property="og:title" content="Kubernetes Redis Cluster" />
<meta property="og:description" content="kubernetes部署redis集群 [TOC]
   镜像 版本 备注     redis.tar alpine    redis-trib.tar dockerfile构建 初始化redis集群    1、创建NFS存储 说明：创建NFS存储主要是为了给Redis提供稳定的后端存储，当Redis的Pod重启或迁移后，依然能获得原先的数据。这里，我们先要创建NFS，然后通过使用PV为Redis挂载一个远程的NFS路径
/pv 192.168.10.0/24(rw,sync,all_squash) rw表示读写权限；all_squash 表示客户机上的任何用户访问该共享目录时都映射成服务器上的匿名用户（默认为nfsnobody）
赋予权限:
chmod -R 777 /pv 挂载到本地测试
mount.nfs 192.168.10.200:/pv /pv  2、创建pv [root@node01 yml]# cat pv.yml apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv1 spec: capacity: storage: 200M accessModes: - ReadWriteMany nfs: server: 192.168.10.21 path: &#34;/pv/pv1&#34; --- apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv2 spec: capacity: storage: 200M accessModes: - ReadWriteMany nfs: server: 192.">
<meta property="og:image" content="https://cyboca.ga/img/avatar-icon.png" />
<meta property="og:url" content="https://cyboca.ga/post/emiya/kubernetes-redis-cluster/" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="panda power!" />

  <meta name="twitter:title" content="Kubernetes Redis Cluster" />
  <meta name="twitter:description" content="kubernetes部署redis集群 [TOC]
   镜像 版本 备注     redis.tar alpine    redis-trib.tar dockerfile构建 初始化redis集群    1、创建NFS存储 说明：创建NFS存储主要是为了给Redis提供稳定的后端存储，当Redis的Pod重启或迁移后，依然能获得原先的数据。这里，我们先要创建NFS，然后通过使用PV为Redis …">
  <meta name="twitter:image" content="https://cyboca.ga/img/avatar-icon.png" />
  <meta name="twitter:card" content="summary" />
  <link href='https://cyboca.ga/img/favicon.ico' rel='icon' type='image/x-icon'/>
  <meta name="generator" content="Hugo 0.58.3" />
  <link rel="alternate" href="https://cyboca.ga/index.xml" type="application/rss+xml" title="panda power!"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><link rel="stylesheet" href="https://cyboca.ga/css/main.css" /><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" />
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" />
  <link rel="stylesheet" href="https://cyboca.ga/css/highlight.min.css" /><link rel="stylesheet" href="https://cyboca.ga/css/codeblock.css" /><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe.min.css" integrity="sha384-h/L2W9KefUClHWaty3SLE5F/qvc4djlyR4qY3NUV5HGQBBW7stbcfff1+I/vmsHh" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/default-skin/default-skin.min.css" integrity="sha384-iD0dNku6PYSIQLyfTOpB06F2KCZJAKLOThS5HRe8b3ibhdEQ6eKsFf/EeFxdOt5R" crossorigin="anonymous">



  </head>
  <body>
    <nav class="navbar navbar-default navbar-fixed-top navbar-custom">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-navbar">
        <span class="sr-only">切换导航</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="https://cyboca.ga">panda power!</a>
    </div>

    <div class="collapse navbar-collapse" id="main-navbar">
      <ul class="nav navbar-nav navbar-right">
        
          
            <li>
              <a title="文章" href="/categories/">文章</a>
            </li>
          
        
          
            <li>
              <a title="tags" href="/tags/">tags</a>
            </li>
          
        

        

        
      </ul>
    </div>

    
      <div class="avatar-container">
        <div class="avatar-img-border">
          <a title="panda power!" href="https://cyboca.ga">
            <img class="avatar-img" src="https://cyboca.ga/img/avatar-icon.png" alt="panda power!" />
          </a>
        </div>
      </div>
    

  </div>
</nav>




    


<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

<div class="pswp__bg"></div>

<div class="pswp__scroll-wrap">
    
    <div class="pswp__container">
      <div class="pswp__item"></div>
      <div class="pswp__item"></div>
      <div class="pswp__item"></div>
    </div>
    
    <div class="pswp__ui pswp__ui--hidden">
    <div class="pswp__top-bar">
      
      <div class="pswp__counter"></div>
      <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
      <button class="pswp__button pswp__button--share" title="Share"></button>
      <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
      <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
      
      
      <div class="pswp__preloader">
        <div class="pswp__preloader__icn">
          <div class="pswp__preloader__cut">
            <div class="pswp__preloader__donut"></div>
          </div>
        </div>
      </div>
    </div>
    <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
      <div class="pswp__share-tooltip"></div>
    </div>
    <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
    </button>
    <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
    </button>
    <div class="pswp__caption">
      <div class="pswp__caption__center"></div>
    </div>
    </div>
    </div>
</div>


  
  
  






  

  <header class="header-section ">
    
    <div class="intro-header no-img">
      <div class="container">
        <div class="row">
          <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
            <div class="post-heading">
              
                <h1>Kubernetes Redis Cluster</h1>
              
              
              
              
                <span class="post-meta">
  
  
  <i class="fas fa-calendar"></i>&nbsp;发表于 November 11, 2019
  
  
    &nbsp;|&nbsp;<i class="fas fa-clock"></i>&nbsp;3&nbsp;分钟
  
  
    &nbsp;|&nbsp;<i class="fas fa-book"></i>&nbsp;525&nbsp;个字
  
  
    
      &nbsp;|&nbsp;<i class="fas fa-user"></i>&nbsp;emiya
    
  
  
</span>


              
            </div>
          </div>
        </div>
      </div>
    </div>
  </header>


    <div id="gotoTop"><a href="#"></a></div>
    
<div class="container" role="main">
  <div class="row">
    <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
      <article role="main" class="blog-post">
        

<h1 id="kubernetes部署redis集群">kubernetes部署redis集群</h1>

<p>[TOC]</p>

<table>
<thead>
<tr>
<th>镜像</th>
<th>版本</th>
<th>备注</th>
</tr>
</thead>

<tbody>
<tr>
<td>redis.tar</td>
<td>alpine</td>
<td></td>
</tr>

<tr>
<td>redis-trib.tar</td>
<td>dockerfile构建</td>
<td>初始化redis集群</td>
</tr>
</tbody>
</table>

<h2 id="1-创建nfs存储">1、创建NFS存储</h2>

<p>说明：创建NFS存储主要是为了给Redis提供稳定的后端存储，当Redis的Pod重启或迁移后，依然能获得原先的数据。这里，我们先要创建NFS，然后通过使用PV为Redis挂载一个远程的NFS路径</p>
<div class="highlight"><pre class="chroma">/pv 192.168.10.0/24(rw,sync,all_squash)</pre></div>
<p><img src="/img/emiya/assets/0010.png" alt="" /></p>

<p>rw表示读写权限；all_squash 表示客户机上的任何用户访问该共享目录时都映射成服务器上的匿名用户（默认为nfsnobody）</p>

<p>赋予权限:</p>
<div class="highlight"><pre class="chroma">chmod -R 777 /pv</pre></div>
<p>挂载到本地测试</p>
<div class="highlight"><pre class="chroma">mount.nfs 192.168.10.200:/pv  /pv  </pre></div>
<p><img src="/img/emiya/assets/002.png" alt="" /></p>

<h2 id="2-创建pv">2、创建pv</h2>
<div class="highlight"><pre class="chroma">[root@node01 yml]# cat pv.yml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv1
spec:
  capacity:
    storage: 200M
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.10.21
    path: &#34;/pv/pv1&#34;
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv2
spec:
  capacity:
    storage: 200M
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.10.21
    path: &#34;/pv/pv2&#34;
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv3
spec:
  capacity:
    storage: 200M
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.10.21
    path: &#34;/pv/pv3&#34;
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv4
spec:
  capacity:
    storage: 200M
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.10.21
    path: &#34;/pv/pv4&#34;
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv5
spec:
  capacity:
    storage: 200M
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.10.21
    path: &#34;/pv/pv5&#34;
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv6
spec:
  capacity:
    storage: 200M
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.10.21
    path: &#34;/pv/pv6&#34;
---
[root@node01 yml]# kubectl apply -f pv.yml 
persistentvolume &#34;nfs-pv1&#34; created
persistentvolume &#34;nfs-pv2&#34; created
persistentvolume &#34;nfs-pv3&#34; created
persistentvolume &#34;nfs-pv4&#34; created
persistentvolume &#34;nfs-pv5&#34; created
persistentvolume &#34;nfs-pv6&#34; created</pre></div>
<p><img src="/img/emiya/assets/003.png" alt="" /></p>

<h2 id="3-创建configmap">3、创建configmap</h2>
<div class="highlight"><pre class="chroma">[root@node01 yml]# cat redis.conf 
appendonly yes
cluster-enabled yes
cluster-config-file /var/lib/redis/nodes.conf
cluster-node-timeout 5000
dir /var/lib/redis
port 6379
[root@node01 yml]# kubectl create cm redis-conf --from-file redis.conf
configmap &#34;redis-conf&#34; created</pre></div>
<p><img src="/img/emiya/assets/004.png" alt="" /></p>

<h2 id="4-创建headless-services">4、创建Headless Services</h2>

<p>Headless service是StatefulSet实现稳定网络标识的基础，需要提前创建</p>
<div class="highlight"><pre class="chroma">[root@node01 yml]# cat headless-service.yml 
apiVersion: v1
kind: Service
metadata:
  name: redis-service
  labels:
    app: redis
spec:
  ports:
  - name: redis-port
    port: 6379
  clusterIP: None
  selector:
    app: redis
    appCluster: redis-cluster
[root@node01 yml]# kubectl apply -f headless-service.yml 
service &#34;redis-service&#34; created</pre></div>
<p><img src="/img/emiya/assets/005.png" alt="" /></p>

<h2 id="5-创建redis集群">5、创建redis集群</h2>

<p>必要说明：</p>

<ul>
<li>pvc的名称实际上是由StatefulSet来确定的</li>

<li><p>pvc_name = volumeClaimTemplates_name + &ldquo;-&rdquo; + pod_name</p>
<div class="highlight"><pre class="chroma">[root@node01 yml]# cat redis.yml 
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: redis-app
spec:
serviceName: &#34;redis-service&#34;
replicas: 6
template:
metadata:
  labels:
    app: redis
    appCluster: redis-cluster
spec:
  terminationGracePeriodSeconds: 20
  affinity:
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: app
              operator: In
              values:
              - redis
          topologyKey: kubernetes.io/hostname
  containers:
  - name: redis
    image: &#34;192.168.10.20/daocloud/redis:alpine&#34;
    command:
      - &#34;redis-server&#34;
    args:
      - &#34;/etc/redis/redis.conf&#34;
      - &#34;--protected-mode&#34;
      - &#34;no&#34;
    resources:
      limits:
        cpu: &#34;100m&#34;
        memory: &#34;100Mi&#34;
    ports:
        - name: redis
          containerPort: 6379
          protocol: &#34;TCP&#34;
        - name: cluster
          containerPort: 16379
          protocol: &#34;TCP&#34;
    volumeMounts:
      - name: &#34;redis-conf&#34;
        mountPath: &#34;/etc/redis&#34;
      - name: &#34;redis-data&#34;
        mountPath: &#34;/var/lib/redis&#34;
  volumes:
  - name: &#34;redis-conf&#34;
    configMap:
      name: &#34;redis-conf&#34;
      items:
        - key: &#34;redis.conf&#34;
          path: &#34;redis.conf&#34;
volumeClaimTemplates:
- metadata:
  name: redis-data
spec:
  accessModes: [ &#34;ReadWriteMany&#34; ]
  resources:
    requests:
      storage: 200M
[root@node01 yml]# kubectl apply -f redis.yml 
statefulset.apps &#34;redis-app&#34; created</pre></div></li>
</ul>

<p><img src="/img/emiya/assets/006.png" alt="" /></p>

<h2 id="6-创建redis-trib初始化redis集群">6、创建redis-trib初始化redis集群</h2>

<p>创建redis-trib</p>
<div class="highlight"><pre class="chroma">[root@node01 yml]# cat redis-trib.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    dce.daocloud.io/app: redis-trib
    dce.daocloud.io/component: redis-trib
  name: redis-trib
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      dce.daocloud.io/component: redis-trib
  template:
    metadata:
      labels:
        dce.daocloud.io/app: redis-trib
        dce.daocloud.io/component: redis-trib
      name: redis-trib
    spec:
      containers:
      - image: 192.168.10.20/daocloud/redis-trib:emiya
        name: redis-trib
        imagePullPolicy: Always
        resources:
          limits:
            cpu: 100m
            memory: 100Mi
        tty: true
      dnsPolicy: ClusterFirst
[root@node01 yml]# kubectl apply -f redis-trib.yaml 
deployment.extensions &#34;redis-trib&#34; created</pre></div>
<p><img src="/img/emiya/assets/007.png" alt="" /></p>
<div class="highlight"><pre class="chroma">[root@redis-trib-854785d5bf-k2ptz /]# redis-trib create --replicas 1 \
&gt; `dig +short redis-app-0.redis-service.default.svc.cluster.local`:6379 \
&gt; `dig +short redis-app-1.redis-service.default.svc.cluster.local`:6379 \
&gt; `dig +short redis-app-2.redis-service.default.svc.cluster.local`:6379 \
&gt; `dig +short redis-app-3.redis-service.default.svc.cluster.local`:6379 \
&gt; `dig +short redis-app-4.redis-service.default.svc.cluster.local`:6379 \
&gt; `dig +short redis-app-5.redis-service.default.svc.cluster.local`:6379</pre></div>
<p><img src="/img/emiya/assets/008.png" alt="" /></p>

<p>查看pvc中的配置文件</p>

<p><img src="/img/emiya/assets/009.png" alt="" /></p>

<p>测试集群时候正常,尝试设置一个键值对</p>

<p><img src="/img/emiya/assets/010.png" alt="" /></p>

<p>查看节点信息</p>

<p><img src="/img/emiya/assets/011.png" alt="" /></p>

<h2 id="7-创建用户访问redis集群的svc">7、创建用户访问redis集群的svc</h2>
<div class="highlight"><pre class="chroma">[root@node01 yml]# cat redis-access-service.yml 
apiVersion: v1
kind: Service
metadata:
  name: redis-access-service
  labels:
    app: redis
spec:
  ports:
  - name: redis-port
    protocol: &#34;TCP&#34;
    port: 6379
    targetPort: 6379
  selector:
    app: redis
    appCluster: redis-cluster
[root@node01 yml]# kubectl apply -f redis-access-service.yml 
service &#34;redis-access-service&#34; created</pre></div>
<p><img src="/img/emiya/assets/012.png" alt="" /></p>


        
          <div class="blog-tags">
            
              <a href="https://cyboca.ga/tags/kubernetes/">Kubernetes</a>&nbsp;
            
              <a href="https://cyboca.ga/tags/redis/">Redis</a>&nbsp;
            
              <a href="https://cyboca.ga/tags/statefulset/">StatefulSet</a>&nbsp;
            
              <a href="https://cyboca.ga/tags/headless-service/">Headless Service</a>&nbsp;
            
          </div>
        

        
            <hr/>
            <section id="social-share">
              <div class="list-inline footer-links">
                

<div class="share-box" aria-hidden="true">
    <ul class="share">
      
      <li>
        <a href="//twitter.com/share?url=https%3a%2f%2fcyboca.ga%2fpost%2femiya%2fkubernetes-redis-cluster%2f&amp;text=Kubernetes%20Redis%20Cluster&amp;via=" target="_blank" title="Share on Twitter">
          <i class="fab fa-twitter"></i>
        </a>
      </li>
  
      
      <li>
        <a href="//www.facebook.com/sharer/sharer.php?u=https%3a%2f%2fcyboca.ga%2fpost%2femiya%2fkubernetes-redis-cluster%2f" target="_blank" title="Share on Facebook">
          <i class="fab fa-facebook"></i>
        </a>
      </li>
  
      
      <li>
        <a href="//reddit.com/submit?url=https%3a%2f%2fcyboca.ga%2fpost%2femiya%2fkubernetes-redis-cluster%2f&amp;title=Kubernetes%20Redis%20Cluster" target="_blank" title="Share on Reddit">
          <i class="fab fa-reddit"></i>
        </a>
      </li>
  
      
      <li>
        <a href="//www.linkedin.com/shareArticle?url=https%3a%2f%2fcyboca.ga%2fpost%2femiya%2fkubernetes-redis-cluster%2f&amp;title=Kubernetes%20Redis%20Cluster" target="_blank" title="Share on LinkedIn">
          <i class="fab fa-linkedin"></i>
        </a>
      </li>
  
      
      <li>
        <a href="//www.stumbleupon.com/submit?url=https%3a%2f%2fcyboca.ga%2fpost%2femiya%2fkubernetes-redis-cluster%2f&amp;title=Kubernetes%20Redis%20Cluster" target="_blank" title="Share on StumbleUpon">
          <i class="fab fa-stumbleupon"></i>
        </a>
      </li>
  
      
      <li>
        <a href="//www.pinterest.com/pin/create/button/?url=https%3a%2f%2fcyboca.ga%2fpost%2femiya%2fkubernetes-redis-cluster%2f&amp;description=Kubernetes%20Redis%20Cluster" target="_blank" title="Share on Pinterest">
          <i class="fab fa-pinterest"></i>
        </a>
      </li>
    </ul>
  </div>
  

              </div>
            </section>
        

        
          
            
          

          
                  <h4 class="see-also">也可以看看</h4>
                  <ul>
                
                
                    <li><a href="/post/emiya/networkpolicy/">NetworkPolicy</a></li>
                
                    <li><a href="/post/emiya/headless-service/">Headless service</a></li>
                
                    <li><a href="/post/emiya/traefik/">Traefik</a></li>
                
                    <li><a href="/post/emiya/annotations-nginx-ingress/">Annotations Nginx Ingress</a></li>
                
                    <li><a href="/post/emiya/nginx-ingress-0.21.0/">安装Nginx Ingress 0.21.0</a></li>
                
              </ul>

          
        
      </article>

      
        <ul class="pager blog-pager">
          
            <li class="previous">
              <a href="https://cyboca.ga/post/emiya/kubernetes-rbac/" data-toggle="tooltip" data-placement="top" title="Kubernetes Rbac">&larr; 前一篇</a>
            </li>
          
          
            <li class="next">
              <a href="https://cyboca.ga/post/rfl/markdownpad02/" data-toggle="tooltip" data-placement="top" title="MarkdownPad02">后一篇 &rarr;</a>
            </li>
          
        </ul>
      


      
        
        
      

    </div>
  </div>
</div>

      
<footer>
  <div class="container">
    <div class="row">
      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
        <ul class="list-inline text-center footer-links">
          
          
          <li>
            <a href="" title="RSS">
              <span class="fa-stack fa-lg">
                <i class="fas fa-circle fa-stack-2x"></i>
                <i class="fas fa-rss fa-stack-1x fa-inverse"></i>
              </span>
            </a>
          </li>
          
        </ul>
        <p class="credits copyright text-muted">
          
            
              <a href="example.com">casper chen</a>
            
          

          &nbsp;&bull;&nbsp;&copy;
          
            2019
          

          
            &nbsp;&bull;&nbsp;
            <a href="https://cyboca.ga">panda power!</a>
          
        </p>
        
        <p class="credits theme-by text-muted">
          由 <a href="https://gohugo.io">Hugo v0.58.3</a> 强力驱动 &nbsp;&bull;&nbsp; 主题 <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> 移植自 <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>
          
        </p>
      </div>
    </div>
  </div>
</footer><script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<script src="https://cyboca.ga/js/main.js"></script>
<script src="https://cyboca.ga/js/highlight.min.js"></script>
<script> hljs.initHighlightingOnLoad(); </script>
<script> $(document).ready(function() {$("pre.chroma").css("padding","0");}); </script><script> renderMathInElement(document.body); </script><script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe.min.js" integrity="sha384-QELNnmcmU8IR9ZAykt67vGr9/rZJdHbiWi64V88fCPaOohUlHCqUD/unNN0BXSqy" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe-ui-default.min.js" integrity="sha384-m67o7SkQ1ALzKZIFh4CiTA8tmadaujiTa9Vu+nqPSwDOqHrDmxLezTdFln8077+q" crossorigin="anonymous"></script><script src="https://cyboca.ga/js/load-photoswipe.js"></script>









    
  </body>
</html>

